from datetime import timedelta

import logging
from redis import StrictRedis

# 设置配置信息
# 维护时不能在启动入口中进行维护了
class Config(object):
    #1.debug模式
    DEBUG = True
    # 写session要有secret_key
    SECRET_KEY = "HAHAHAHA"

    # 2.数据库配置
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:mysql@localhost:3306/information17"
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    #3.redis配置
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    #设置session配置信息
    SESSION_TYPE = "redis"
    #签名信息
    SESSION_USE_SIGNER = True
    #存储服务器
    SESSION_REDIS = StrictRedis(host=REDIS_HOST,port=REDIS_PORT)
    #有效期（过期时间）   设置2天有效
    PERMANENT_SESSION_LIFETIME = timedelta(days=2)

    #设置
    LEVEL_NAME = logging.DEBUG

#开发阶段配置 相当于继承一份Config
#可根据需求更改数据阶段，例如：更换数据库  redis_ip地址及端口
class DevelopConfig(Config):
    pass

#生产（线上）配置阶段
#生产阶段的信息  生产阶段的数据库
class ProductConfig(Config):
    DEBUG = False
    LEVEL_NAME = logging.ERROR

#测试阶段配置
#测试模式
class TestConfig(Config):
    #TESTING = True  改为True时当测试的案例报错的时候会自动定位到具体的位置
    TESTING = True

#不同阶段的配置设置之后，怎么使用
#提供配置信息的访问入口
#管理配置信息
config_dict = {
    "develop":DevelopConfig,
    "product":ProductConfig,
    "test":TestConfig,
}